#pragma once
#include "ImageDlg.h"
#include "TextEffectDlg.h"


class CSPPropertyGridItemImage :public CSPPropertyGridItem
{
public:
	CSPPropertyGridItemImage(CString strCaption, LPCTSTR strValue = NULL, CString* pBindString = NULL);
	CSPPropertyGridItemImage(UINT nID);
	virtual ~CSPPropertyGridItemImage(void);

	void OnInplaceButtonDown();
	CImageDlg m_dlgImage;
};

////////////////////////////////////////
class CSPPropertyGridItemText :public CSPPropertyGridItem
{
public:
	CSPPropertyGridItemText(CString strCaption, LPCTSTR strValue = NULL, CString* pBindString = NULL);
	CSPPropertyGridItemText(UINT nID);
	virtual ~CSPPropertyGridItemText(void);

	void OnInplaceButtonDown();
	CTextEffectDlg m_dlgText;
};

class CSPPropertyGridItemRect : public CSPPropertyGridItem
{
	class CCustomItemChildsAll;
	class CCustomItemChildsPad;

	friend class CCustomItemChildsAll;
	friend class CCustomItemChildsPad;

public:
	CSPPropertyGridItemRect(CString strCaption, CRect rcValue);
	CSPPropertyGridItemRect(UINT nID,  CRect rcValue);

	void		SetRect(CRect rc);
	CRect		GetRect();

protected:
	virtual void OnAddChildItem();
	virtual void SetValue(CString strValue);

private:
	void UpdateChilds();
	CString RectToString(CRect rc);


private:
	CCustomItemChildsAll* m_itemAll;
	CCustomItemChildsPad* m_itemLeft;
	CCustomItemChildsPad* m_itemTop;
	CCustomItemChildsPad* m_itemRight;
	CCustomItemChildsPad* m_itemBottom;

	CRect m_rcValue;
};
